1. Field of the Invention
This invention relates to a turbo-code error correcting decoder, a turbo-code error correction decoding method, a turbo-code decoding apparatus, and a turbo-code decoding system for decoding a coded sequence which has been submitted to turbo-coding in a wireless communication device or other communication fields.
2. Description of the Related Art
Referring to FIG. 26, there is shown a block diagram of a constitution of a general turbo encoding apparatus.
In FIG. 26, reference numerals 301, 302, 303, 304, 305, 306, and 307 designate a first systematic convolutional encoder, a second systematic convolutional encoder, an interleaver, an input point, a first sequence output point, a second sequence output point, and a third sequence output point, respectively.
Referring to FIG. 27, there is shown a block diagram of a constitution of a conventional turbo-code decoding apparatus described in xe2x80x9cTurbo Code for Deep-Space Communicationsxe2x80x9d (P. 29 to P. 39, D. Divsalar and F. Pollara, Feb. 15 in 1995) in the TDA Progress Report.
In FIG. 27, reference numerals 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, and 411 designate a first MAP decoder for an error correction decoding called an MAP decoding on a first sequence and a second sequence encoded by the first systematic convolutional encoder 301 in FIG. 26, a second MAP decoder for an error correction decoding called an MAP. decoding on a first sequence and a third sequence encoded by the second systematic convolutional encoder 302, a first interleaver, a second interleaver, a first deinterleaver, a second deinterleaver, a hard decision circuit for generating hard decision information from soft decision information, a first sequence input point, a second sequence input point, a third sequence input point, and an output point.
Operations of the first interleaver 403 and the second interleaver 404 are the same as for those of the interleaver 303 of the turbo encoding apparatus in FIG. 26. In addition, the first deinterleaver 405 and the second deinterleaver 406 change an order of data in a procedure reverse to that of the interleaver 303.
Referring to FIG. 28, there is shown a flowchart of an operation for error correction decoding with the first MAP decoder. The second MAP decoder performs the same operation.
In FIG. 28, there are shown a step S201 of setting an initial value, a step S202 of calculating a state transition probability, a step S203 of calculating a probability of a transition to each state at tracing a path in a forward direction, a step S204 of calculating a probability of a transition to each state at tracing a path in a backward direction, and a step S205 of calculating soft decision information after decoding on the basis of values calculated in Steps S202, S203, and S204, respectively.
Next, an operation of the turbo encoding apparatus is described below with reference to FIG. 26.
In the turbo encoding apparatus, N bits of an information sequence is input from the input point 304 and output from the first output point 305 as the first sequence directly. In addition, N bits of the input information sequence is also entered into the first systematic convolutional encoder 301 in the same order and N bits of the sequence is output from the second output point 306 as the second sequence. Furthermore, N bits of the input information sequence is converted to one having a different order in the interleaver 303 and then entered into the second systematic convolutional encoder 302 to output N bits of the sequence as the third sequence from the third output point 307.
The first, second, and third sequences each having N bits and generated in this manner are combined so as to be a coded sequence and then transmitted through a communication line or transmitted as a radiowave.
Next, an operation of a turbo-code decoding apparatus on a reception side is described below with reference to FIG. 27.
The transmitted coded sequence is received with errors appended. The received sequence is separated to the first, the second, and the third sequences, which are input from the first input point 408, the second input point 409, and the third input point 410 to the turbo-code decoding apparatus, respectively.
The first MAP decoder 401 generates soft decision information L1 after decoding from the first sequence, the second sequence, and value L1* generated on the basis of the soft decision information generated in the second MAP decoder 402 in the previous stage. At the first decoding, however, an L1* value entered in the first MAP decoder 401 is set to zero (0) as the lowest reliability for all the bits. Next, it generates L1xe2x88x92L1* and enters it to the first interleaver 403 and its order is changed so as to be L2*.
Next, the second MAP decoder 402 generates soft decision information L2 after decoding from the first sequence interleaved by the second interleaver 404, the third sequence, and L2* generated by the first interleaver 403. L2xe2x88x92L2* is calculated for the generated L2 and its order is changed so as to be L1* in the first deinterleaver 405. L1* is used in the first MAP decoder 401 when L1* is repeatedly decoded.
This operation is repeated by the predetermined number of times. When the decoding operation is terminated, the second deinterleaver 406 changes an order of the soft decision information L2 generated by the second MAP decoder 402 and the hard decision circuit 407 judges whether it is 0 or 1 and outputs the result from the output point 411. Subsequently, an operation of the first MAP decoder 401 is described below with reference to a flowchart in FIG. 28. The second MAP decoder 402 performs the same operation.
In Step S201, an initial value is set for a transition probability in the state in the forward direction and in the state in the backward direction. Next in Step S202, a channel state is measured based on the received soft decision information and a state transition probability is calculated in accordance with a state of the channel. Then, in Step S203 calculation is made for a probability of a transition to each state when a path is traced in the forward direction from the state transition probability calculated in Step S202, and in Step S204 calculation is made for a probability of a transition to each state when a path is traced in the backward direction from the state transition probability calculated in Step S202. Finally in Step S205, soft decision information after decoding is calculated on the basis of the values calculated in Steps S202, S203, and S204.
In a conventional turbo-code decoding apparatus, however, it is necessary to calculate a state transition probability in an execution of MAP decoding for convolutional codes composing turbo-codes in an error correcting decoder and the calculation of the probability requires a measurement of a state of a channel on the basis of soft decision information, by which an arithmetic operation amount is enormously increased disadvantageously.
Furthermore, in order to increase a precision of decoding, error correction decoding processing needs to be performed by a regular number of times with the first MAP decoder and the second MAP decoder until hard decision information is obtained. This number of times, however, is a fixed value and therefore processing is performed even if almost no error occurs, by which the processing is disadvantageously delayed by an intrinsically unnecessary time period.
In addition, only a single coded sequence can be input to a turbo-code decoder, and therefore the second MAP decoder is put in an idle state for a time period during which processing is performed by the first MAP decoder, thereby disadvantageously lowering a processing efficiency.
The present invention is provided to solve the above problems. It is a first object of the present invention to reduce a calculation amount by a constitution of an error correction part similar to that for decoding of a normal convolutional decoder so as to simplify an arithmetic operation required for decoding.
It is a second object of the present invention to achieve flexible processing by changing the number of times for correction encoding flexibly in accordance with error conditions.
It is a third object of the present invention to perform processing more efficiently by permitting a parallel use of two error correcting decoders in a turbo-code decoding apparatus.
In accordance with an aspect of the present invention, there is provided a turbo-code error correcting decoder comprising branch metric calculating means for calculating a branch metric for a transition from time point txe2x88x921 (t=1, 2, - - - , N) to time point t, branch metric storing means for storing the branch metric, forward path metric calculating means for calculating a forward path metric at the time point txe2x88x921 after reading out the branch metric from the branch metric storing means, forward path metric storing means for storing the forward path metric, backward path metric calculating means for calculating a backward path metric at the time point t after reading out the branch metric from the branch metric storing means, backward path metric storing means for storing the backward path metric, and soft decision information calculating means for calculating soft decision information after reading out the branch metric from the branch metric storing means, reading out the forward path metric from the forward path metric storing means, and reading out the backward path metric from the backward path metric storing means.
In accordance with another aspect of the present invention, there is prbvided a turbo-code error correcting decoder comprising branch metric calculating means for calculating a branch metric for a transition from time point txe2x88x921 (t=1, 2, - - - , N) to time point t, branch metric storing means for storing the branch metric, forward path metric calculating means for calculating a forward path metric at the time point txe2x88x921 after reading out the branch metric from the branch metric storing means, forward path metric storing means for storing the forward path metric, backward path metric calculating means for calculating a backward path metric at time point t after reading out the branch metric from the branch metric storing means, and soft decision information calculating means for calculating soft decision information after receiving the backward path metric from the backward path metric calculating means, reading out the branch metric from the branch metric storing means, and reading out the forward path metric from the forward path metric storing means.
In accordance with another aspect of the present invention, there is provided a turbo-code error correction decoding method comprising a step(a) of calculating a forward path metric based on a branch metric after calculating the branch metric for a transition to an adjacent time point and a step(b) of calculating N bits of soft decision information based on the branch metric, the forward path metric, and a backward path metric after calculating the backward path metric based on the branch metric.
In accordance with another aspect of the present invention, there is provided a turbo-code error correction decoding method comprising a step(a) of calculating soft decision information from time point 1 to time point Nxe2x88x92M (N greater than M) and a step(b) of calculating soft decision information from time point Nxe2x88x92M+1 to time point N, wherein step(a) includes an execution during a transition of t from 1 to N of a step of executing calculation of a branch metric for a transition from time point txe2x88x921 to time point t and calculation of a forward path metric at the time point t based on the branch metric while incrementing t until t exceeds M (N greater than M), a step of setting an initial value of a backward path metric, a step of calculating a backward path metric at time point txe2x88x92M based on the branch metric, and a step of calculating soft decision information at the time point txe2x88x92M based on the branch metric, the forward path metric, and the backward path metric.
In accordance with another aspect of the present invention, there is provided a turbo-code error correction decoding method comprising a step(a) of initializing variable m, a step(b) of calculating soft decision information from time point 1 to time point mK while incrementing the variable m, and a step(b) of calculating soft decision information from time point mK+1 to time point N, wherein the step(b) includes a repetition of a step of executing calculation of a branch metric for a transition from the time point txe2x88x921 to the time point t and calculation of a forward path metric at the time point t based on the branch metric during a transition of t to mK+M (K less than M less than N) or to N, a step of setting an initial value of the backward path metric, a step of calculating a backward path metric at the time point t based on the branch metric during a transition of t from mK+Kxe2x88x921 to mK+1, and a step of calculating soft decision information at the time point t based on the branch metric, the forward path metric, and the backward path metric during a transition of t from mK+1 to mK+K, while incrementing m during a transition of t up to N.
In accordance with another aspect of the present invention, there is provided a turbo-code error correcting decoder, with the number of information bits submitted to turbo-code decoding set to N, comprising branch metric calculating means for calculating a branch metric for a transition from time point txe2x88x921 (t=1, 2, - - - , N) to time point t, forward path metric calculating means for calculating a forward path metric at the time point txe2x88x921, a size comparison result of two forward path metrics converging to respective states, and a differential value between them, comparison result storing means for storing the comparison result, differential value storing means for storing the differential value, and soft decision information calculating means for calculating soft decision information based on the comparison result read from the comparison result storing means and the differential value read from the differential value storing means by using a SOVA algorithm.
In accordance with another aspect of the present invention, there is provided a turbo-code decoding apparatus including CRC error decision means for deciding a CRC error based on a decoded CRC code and controlling a repetition of decoding processing of turbo-codes on the basis of the result achieved by the CRC error decision means.
In accordance with another aspect of the present invention, there is provided a turbo-code decoding system comprising a turbo-code decoding apparatus having a first turbo-code error correcting decoder and a second turbo-code error correcting decoder, first coded sequence storing means for storing a first coded sequence, second coded sequence storing means for storing a second coded sequence, and a switching means for switching a connection between the first turbo-code error correcting decoder and the second turbo-code error correcting decoder and the first coded sequence storing means and the second coded sequence storing means.